/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.general.be;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import org.cip.esymons.colegiatura.be.Colegiado;

/**
 *
 * @author ADMINISTRADOR
 */
@Entity
@Table(name = "gen_UsuarioExterno")
@NamedQueries({
    @NamedQuery(name = "UsuarioExterno.findAll", query = "SELECT u FROM UsuarioExterno u"),
    @NamedQuery(name = "UsuarioExterno.findByGueCodigo", query = "SELECT u FROM UsuarioExterno u WHERE u.gueCodigo = :gueCodigo"),
    @NamedQuery(name = "UsuarioExterno.findByGueUsuario", query = "SELECT u FROM UsuarioExterno u WHERE u.gueUsuario = :gueUsuario"),
    @NamedQuery(name = "UsuarioExterno.findByGueClave", query = "SELECT u FROM UsuarioExterno u WHERE u.gueClave = :gueClave"),
    @NamedQuery(name = "UsuarioExterno.findByGueFecha", query = "SELECT u FROM UsuarioExterno u WHERE u.gueFecha = :gueFecha"),
    @NamedQuery(name = "UsuarioExterno.findByGuePregunta", query = "SELECT u FROM UsuarioExterno u WHERE u.guePregunta = :guePregunta"),
    @NamedQuery(name = "UsuarioExterno.findByGueRespuesta", query = "SELECT u FROM UsuarioExterno u WHERE u.gueRespuesta = :gueRespuesta"),
    @NamedQuery(name = "UsuarioExterno.findByGueActivo", query = "SELECT u FROM UsuarioExterno u WHERE u.gueActivo = :gueActivo")})
public class UsuarioExterno implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "gue_Codigo")
    private Integer gueCodigo;
    @Basic(optional = false)
    @Column(name = "gue_usuario")
    private String gueUsuario;
    @Basic(optional = false)
    @Column(name = "gue_clave")
    private String gueClave;
    @Basic(optional = false)
    @Column(name = "gue_fecha")
    @Temporal(TemporalType.DATE)
    private Date gueFecha;
    @Column(name = "gue_pregunta")
    private String guePregunta;
    @Column(name = "gue_respuesta")
    private String gueRespuesta;
    @Basic(optional = false)
    @Column(name = "gue_activo")
    private boolean gueActivo;
   
    @JoinColumn(name = "tus_codigo", referencedColumnName = "tus_codigo")
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private TipoUsuario tusCodigo;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "gueCodigo", fetch = FetchType.LAZY)
    private List<HistorialConexion> historialConexionList;

    public UsuarioExterno() {
    }

    public UsuarioExterno(Integer gueCodigo) {
        this.gueCodigo = gueCodigo;
    }

    public UsuarioExterno(Integer gueCodigo, String gueUsuario, String gueClave, Date gueFecha, boolean gueActivo) {
        this.gueCodigo = gueCodigo;
        this.gueUsuario = gueUsuario;
        this.gueClave = gueClave;
        this.gueFecha = gueFecha;
        this.gueActivo = gueActivo;
    }

    public Integer getGueCodigo() {
        return gueCodigo;
    }

    public void setGueCodigo(Integer gueCodigo) {
        this.gueCodigo = gueCodigo;
    }

    public String getGueUsuario() {
        return gueUsuario;
    }

    public void setGueUsuario(String gueUsuario) {
        this.gueUsuario = gueUsuario;
    }

    public String getGueClave() {
        return gueClave;
    }

    public void setGueClave(String gueClave) {
        this.gueClave = gueClave;
    }

    public Date getGueFecha() {
        return gueFecha;
    }

    public void setGueFecha(Date gueFecha) {
        this.gueFecha = gueFecha;
    }

    public String getGuePregunta() {
        return guePregunta;
    }

    public void setGuePregunta(String guePregunta) {
        this.guePregunta = guePregunta;
    }

    public String getGueRespuesta() {
        return gueRespuesta;
    }

    public void setGueRespuesta(String gueRespuesta) {
        this.gueRespuesta = gueRespuesta;
    }

    public boolean getGueActivo() {
        return gueActivo;
    }

    public void setGueActivo(boolean gueActivo) {
        this.gueActivo = gueActivo;
    }

    public TipoUsuario getTusCodigo() {
        return tusCodigo;
    }

    public void setTusCodigo(TipoUsuario tusCodigo) {
        this.tusCodigo = tusCodigo;
    }

    public List<HistorialConexion> getHistorialConexionList() {
        return historialConexionList;
    }

    public void setHistorialConexionList(List<HistorialConexion> historialConexionList) {
        this.historialConexionList = historialConexionList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (gueCodigo != null ? gueCodigo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof UsuarioExterno)) {
            return false;
        }
        UsuarioExterno other = (UsuarioExterno) object;
        if ((this.gueCodigo == null && other.gueCodigo != null) || (this.gueCodigo != null && !this.gueCodigo.equals(other.gueCodigo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "org.cip.esymons.general.be.UsuarioExterno[gueCodigo=" + gueCodigo + "]";
    }

    @Transient
    private String nombreCompleto;

    public String getNombreCompleto() {
        return nombreCompleto;
    }

    public void setNombreCompleto(String nombreCompleto) {
        this.nombreCompleto = nombreCompleto;
    }
    
//    private Colegiado colegiado;
//
//    public Colegiado getColegiado() {
//        return colegiado;
//    }
//
//    public void setColegiado(Colegiado colegiado) {
//        this.colegiado = colegiado;
//    }

   

}
